home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
T-TPUG Old Monthly Disks
/
(c)t5.d64
/
viper.c
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-10-10
|
5KB
|
137 lines
100 DT=60 : DIM MA(DT) , Q(100) , I%(15)
110 I%(14)=-40 : I%(13)=40 : I%(11)=-1 : I%(7)=1
120 I%(10)=-41 : I%(6)=-39 : I%(9)=39 : I%(5)=41 : JOY=56321
130 FOR J=1TODT : READ MA(J) : NEXT
140 PRINT "[147]"CHR$(142) : C=54272 : SC=1024 : POKE 53281,2 : POKE 53280,8
150 MZ=0 : P=0 : DR=0
160 CURR=251 : SPEED=49352 : INDEX=SPEED+1 : LNGTH=INDEX+1 : RTN=LN+1
170 SID=54272 : V=SID+24 : S1=SID : S2=SID : S3=S2 : A=2 : N=2 : MM=0 : S4=SID+4
180 FOR I=0TO24 : POKE SID+I,0 : NEXT : POKE SID+1,25 : POKE SID+5,6 : POKE SID+6,0
190 POKE SID+24,15
200 GOSUB 410 : POKE SID+5,6 : POKE SPEED,19-SK
210 FOR J=1024TO1063 : POKE J+C,7 : POKE J,160 : NEXT
220 FOR J=1064TO2024 STEP 40 : POKE J+C,7 : POKE J,160 : NEXT
230 FOR J=2023TO1984 STEP -1 : POKE J+C,7 : POKE J,160 : NEXT
240 FOR J=1983TO1063 STEP -40 : POKE J+C,7 : POKE J,160 : NEXT
250 M=INT(RND(TI)*1000)+SC
260 IF PEEK(M)<>32 THEN 250
270 POKE M,42 : POKE M+C,1
280 S=INT(RND(TI)*1000)+SC
290 IF PEEK(S)<>32 THEN 280
300 POKE S,90 : POKE S+C,16*RND(TI) : IF (PEEK(56321)AND15)=15 THEN 300
310 S%=S/256 : POKE CURR,S-S%*256 : POKE CURR+1,S% : POKE INDEX,0
320 POKE LNGTH,N : SYS 49152+5 : REM MAIN LOOP : GOTO 170
330 HIT=PEEK(RTN)
340 IF HIT<>160 AND HIT<>214 THEN 360
350 S=PEEK(CU)+256*PEEK(CU+1) : POKE S,42 : POKE S+C,7 : GOTO 770
360 IF HIT<>42 THEN 320
370 POKE SID,0:POKE SID+5,9:POKE S4,128:POKE S4,129:P=P+1:N=N+2:FOR T=1TO50:NEXT
380 POKE S4,128 : POKE SID,0 : POKE SID+5,6 : POKE SID+24,0 : POKE SID+24,15
390 GOSUB 880 : POKE M,42 : POKE M+C,1 : POKE SID+24,0 : POKE SID+24,15
400 GOTO 320
410 IF TR=1 THEN PRINT "[147]" : GOTO 470
420 GOSUB 950
430 PRINT " GET THE '*'S BUT" : PRINT " DON'T HIT ANYTHING ELSE"
440 PRINT " USE JOYSTICK IN CONTROL PORT ONE."
450 FOR J=1TO45:POKE SID,230:POKE S4,33:FOR T=1TO2:NEXT:POKE S4,32:POKE SID,0
460 POKE SID+5,2
470 PRINT ""TAB(11)"ENTER SKILL LEVEL:"
480 PRINT TAB(10)"[155] 11111111112" : SK=10
490 PRINT " [158]SLOW <- [155]12345678901234567890[146] -> [153]FAST"
500 PRINT TAB(10)"[182][182][159][182][182][156][182][182][182][182][158][182][182][129][182][182][153][182][182][154][182][182][182][182][150][182][182]" : PRINT
510 PRINT "[145]"TAB(10+SK);"^[157]";
520 J=15-(PEEK(56321)AND15):SK=SK+((JAND8)=8)*(SK<19)-((JAND4)=4)*(SK>0)
530 IF (PEEK(56321)AND16)=0 THEN 560
540 IF TI<T THEN 530
550 T=TI+5 : PRINT " " : GOTO 510
560 IF TR=1 THEN PRINT "[147]" : GOTO 610
570 PRINT "[147]"CHR$(14)" [217]OU WILL GET 2 TIMES" : PRINT " AS MANY POINTS WITH"
580 PRINT " AN [197]ASY [205]AZE.
590 [153] " (null)OU WILL GET 5 TIMES" : [153] " AS MANY POINTS WITH"
600 [153] " A LEFT$ARD (null)AZE.
610 PRINT "[155] [208]RESS [204]EFT[155] FOR [200]ARD [205]AZE"
620 PRINT " [208]RESS [210]IGHT [155]FOR [197]ASY [205]AZE"
630 PRINT " [208]RESS [202]OYBUTTON [155]FOR NO MAZE"
640 IF PEEK(56321)<>255 THEN 640
650 MZ=0 : J=PEEK(56321) : IF (JAND16)=0 THEN PRINT "[147]"CHR$(142); : RETURN
660 IF (JAND15)=15 THEN 650
670 PRINT "[147]"CHR$(142) : IF (JAND4) THEN 720
680 I=-1 : PRINT "HARD MAZE"
690 FORJ=1TODT:POKESC+80+I*320+MA(J)+C,3:POKESC+MA(J)+80+I*320,160:NEXTJ
700 I=I+1 : IF I<2 THEN 690
710 MZ=2 : RETURN
720 IF (JAND8) THEN 570
730 I=-1 : PRINT "EASY MAZE"
740 FOR J=1TO32:POKESC+MA(J)+C+80+320*I,3:POKESC+MA(J)+80+320*I,160:NEXT
750 I=I+1 : IF I<2 THEN 740
760 MZ=2 : RETURN
770 POKESID,0:POKESID+5,15:POKES4,129:FORJ=15TO4STEP-.1:POKESID+24,J:NEXT
780 POKESID+24,15:FORT=1TO500:NEXT:POKES4,128:FORT=1TO200:NEXT:POKESID+5,6
790 IF MZ=1 THEN P=P*5
800 IF MZ=2 THEN P=P*2
810 R=P*(SK+1)
820 PRINT "[147][158] YOUR SCORE:"R
830 IF R>HS THEN HS=R
840 PRINT " [159]HIGH SCORE:"HS
850 PRINT : PRINT "PRESS [150]JOYBUTTON[146] TO PLAY AGAIN."
860 IF (PEEK(56321)AND16) THEN 860
870 GOTO 140
880 M=INT(RND(TI)*1000)+SC : MM=0
890 IF PEEK(M)<>32 THEN 880
900 RETURN
910 DATA 259,260,336,337,338,341,342,343,376,383,411,412,413,414,415,416
920 DATA 423,424,425,426,427,428,456,463,496,497,498,501,502,503,579,580
930 DATA 258,259,330,331,332,333,334,345,346,347,348,349,418,419,420,421
940 DATA 490,491,492,493,494,505,506,507,508,509,578,581
950 PRINT "[147] "CHR$(142); : FOR I=2TO39 : PRINT "[192]"; : NEXT : PRINT : PRINT ""
960 PRINT " "; : FOR I=2TO39 : PRINT "[192]"; : NEXT
970 PRINT "[164][164][164] [164] [164] [164][164][164] [164][164] [164][164][164]"
980 PRINT " [169][146][169][169][146][169][169][146][169][169][146][169][169][146][169] [169][146][169][169][146][169]
990 [153] " TAB( WAITSTEPSTEPWAITSTEPSTEPWAITSTEPTAB(TAB(STEPWAITSTEPTAB(STEPWAITSTEP(null)(null)"
1000 [153] " TAB(TAB( TAB( TAB(TAB( TAB(TAB( TAB(TAB( TAB(TAB(TAB( " : [139] ZZ[178]1 [167] 1070
1010 [139] [194](900)[179][177]232 [167] [141] 1130
1020 [129] CO[178]3[164]7 : [151] 894,CO : [158] 893
1030 [129]I[178]1[164]20 : [153] ""[199](148)" CMD"[199](148)" CMD"[199](148)" CMD"[199](148)" CMD"
1040 [151] SID[170]1,CO[172]2[170]I : [151] S4,33 : [151] S4,32 : [130]
1050 [129] I[178]1[164]20 : [153] " "[199](20)" "[199](20)" "[199](20)" "[199](20)" "
1060 [151] SID[170]1,CO[172]2[170]20[171]I : [151] S4,33 : [151] S4,32 : [130] : [130]
1070 [129]I[178]1[164]10 : [153] ""[199](148)" CMD"[199](148)" CMD"[199](148)" CMD"[199](148)" CMD"
1080 [130]
1090 [151] SID[170]1,60
1100 [129] J[178]15[164]1 [169][171]1 : [151] 894,J : [151] SID,J[172]10 : [151] S4,33
1110 [158] 893 : [151] S4,32 : [151] SID[170]24,J : [130] : [151] SID[170]1,15 : [151] SID[170]24,15
1120 ZZ[178]1 : [142]
1130 [129] I[178]893[164]905 : [135] A : [151] I,A : [130]
1140 [153] "READY TO PLAY IN 5 SECONDS..."
1150 [131] 169,1,162,0,157,40,216,232
1160 [131] 224,160,208,248,96
1170 [129] I[178]49152[164]49350 : [135] A : CK[178]CK[170]A : [151] I,A : [130]
1180 [153] " "
1190 [139] CK[179][177]29203 [167] [153] "ERROR IN DATA STATEMENTS!" : [151] 900,0 : [128]
1200 [142]
1210 [131] 169,0,141,199,192,173,1,220
1220 [131] 41,15,170,189,183,192,240,3
1230 [131] 141,199,192,173,201,192,10,170
1240 [131] 165,251,157,205,192,165,252,157
1250 [131] 206,192,56,173,201,192,237,202
1260 [131] 192,16,3,24,105,128,10,170
1270 [131] 189,205,192,133,253,189,206,192
1280 [131] 133,254,169,32,145,253,238,201
1290 [131] 192,173,201,192,16,5,169,0
1300 [131] 141,201,192,169,230,141,0,212
1310 [131] 169,32,141,4,212,169,33,141
1320 [131] 4,212,169,214,145,251,24,165
1330 [131] 251,133,253,165,252,105,212,133
1340 [131] 254,169,5,145,253,24,173,199
1350 [131] 192,16,13,101,251,133,251,165
1360 [131] 252,233,0,133,252,76,138,192
1370 [131] 101,251,133,251,165,252,105,0
1380 [131] 133,252,24,165,251,133,253,165
1390 [131] 252,105,212,133,254,177,251,201
1400 [131] 32,208,24,169,81,145,251,169
1410 [131] 4,145,253,173,200,192,240,8
1420 [131] 162,0,134,162,197,162,208,252
1430 [131] 76,5,192,141,203,192,96,0
1440 [131] 0,0,0,0,41,217,1,0
1450 [131] 39,215,255,0,40,216,0,0